package io.github.echarts.option.style;


/**
 * 文本样式配置类，用于配置文本的字体、大小、颜色等属性。
 */
public class TextStyle {
    
    private String color;
    private String fontFamily;
    private Integer fontSize;
    private String fontStyle;
    private String fontWeight;
    private String align;
    private String verticalAlign;
    private Integer lineHeight;
    private String backgroundColor;
    private String borderColor;
    private Integer borderWidth;
    private Integer borderRadius;
    private Integer padding;
    private String textShadowColor;
    private Integer textShadowBlur;
    private Integer textShadowOffsetX;
    private Integer textShadowOffsetY;
    private Integer rotate;
    
    /**
     * 创建一个默认的文本样式对象。
     */
    public TextStyle() {
        // 默认构造函数
    }
    
    /**
     * 创建一个带颜色的文本样式对象。
     *
     * @param color 文本颜色
     */
    public TextStyle(String color) {
        this.color = color;
    }
    
    /**
     * 创建一个带颜色和字体大小的文本样式对象。
     *
     * @param color 文本颜色
     * @param fontSize 字体大小
     */
    public TextStyle(String color, Integer fontSize) {
        this.color = color;
        this.fontSize = fontSize;
    }
    
    /**
     * 获取文本颜色。
     *
     * @return 文本颜色
     */
    public String getColor() {
        return color;
    }
    
    /**
     * 设置文本颜色。
     *
     * @param color 文本颜色
     * @return 当前对象，用于链式调用
     */
    public TextStyle setColor(String color) {
        this.color = color;
        return this;
    }
    
    /**
     * 获取字体族。
     *
     * @return 字体族
     */
    public String getFontFamily() {
        return fontFamily;
    }
    
    /**
     * 设置字体族。
     *
     * @param fontFamily 字体族
     * @return 当前对象，用于链式调用
     */
    public TextStyle setFontFamily(String fontFamily) {
        this.fontFamily = fontFamily;
        return this;
    }
    
    /**
     * 获取字体大小。
     *
     * @return 字体大小
     */
    public Integer getFontSize() {
        return fontSize;
    }
    
    /**
     * 设置字体大小。
     *
     * @param fontSize 字体大小
     * @return 当前对象，用于链式调用
     */
    public TextStyle setFontSize(Integer fontSize) {
        this.fontSize = fontSize;
        return this;
    }
    
    /**
     * 获取字体样式（如斜体）。
     *
     * @return 字体样式
     */
    public String getFontStyle() {
        return fontStyle;
    }
    
    /**
     * 设置字体样式（如斜体）。
     *
     * @param fontStyle 字体样式
     * @return 当前对象，用于链式调用
     */
    public TextStyle setFontStyle(String fontStyle) {
        this.fontStyle = fontStyle;
        return this;
    }
    
    /**
     * 获取字体粗细。
     *
     * @return 字体粗细
     */
    public String getFontWeight() {
        return fontWeight;
    }
    
    /**
     * 设置字体粗细。
     *
     * @param fontWeight 字体粗细
     * @return 当前对象，用于链式调用
     */
    public TextStyle setFontWeight(String fontWeight) {
        this.fontWeight = fontWeight;
        return this;
    }
    
    /**
     * 获取水平对齐方式。
     *
     * @return 水平对齐方式
     */
    public String getAlign() {
        return align;
    }
    
    /**
     * 设置水平对齐方式。
     *
     * @param align 水平对齐方式
     * @return 当前对象，用于链式调用
     */
    public TextStyle setAlign(String align) {
        this.align = align;
        return this;
    }
    
    /**
     * 获取垂直对齐方式。
     *
     * @return 垂直对齐方式
     */
    public String getVerticalAlign() {
        return verticalAlign;
    }
    
    /**
     * 设置垂直对齐方式。
     *
     * @param verticalAlign 垂直对齐方式
     * @return 当前对象，用于链式调用
     */
    public TextStyle setVerticalAlign(String verticalAlign) {
        this.verticalAlign = verticalAlign;
        return this;
    }
    
    /**
     * 获取行高。
     *
     * @return 行高
     */
    public Integer getLineHeight() {
        return lineHeight;
    }
    
    /**
     * 设置行高。
     *
     * @param lineHeight 行高
     * @return 当前对象，用于链式调用
     */
    public TextStyle setLineHeight(Integer lineHeight) {
        this.lineHeight = lineHeight;
        return this;
    }
    
    /**
     * 获取背景颜色。
     *
     * @return 背景颜色
     */
    public String getBackgroundColor() {
        return backgroundColor;
    }
    
    /**
     * 设置背景颜色。
     *
     * @param backgroundColor 背景颜色
     * @return 当前对象，用于链式调用
     */
    public TextStyle setBackgroundColor(String backgroundColor) {
        this.backgroundColor = backgroundColor;
        return this;
    }
    
    /**
     * 获取边框颜色。
     *
     * @return 边框颜色
     */
    public String getBorderColor() {
        return borderColor;
    }
    
    /**
     * 设置边框颜色。
     *
     * @param borderColor 边框颜色
     * @return 当前对象，用于链式调用
     */
    public TextStyle setBorderColor(String borderColor) {
        this.borderColor = borderColor;
        return this;
    }
    
    /**
     * 获取边框宽度。
     *
     * @return 边框宽度
     */
    public Integer getBorderWidth() {
        return borderWidth;
    }
    
    /**
     * 设置边框宽度。
     *
     * @param borderWidth 边框宽度
     * @return 当前对象，用于链式调用
     */
    public TextStyle setBorderWidth(Integer borderWidth) {
        this.borderWidth = borderWidth;
        return this;
    }
    
    /**
     * 获取边框圆角。
     *
     * @return 边框圆角
     */
    public Integer getBorderRadius() {
        return borderRadius;
    }
    
    /**
     * 设置边框圆角。
     *
     * @param borderRadius 边框圆角
     * @return 当前对象，用于链式调用
     */
    public TextStyle setBorderRadius(Integer borderRadius) {
        this.borderRadius = borderRadius;
        return this;
    }
    
    /**
     * 获取内边距。
     *
     * @return 内边距
     */
    public Integer getPadding() {
        return padding;
    }
    
    /**
     * 设置内边距。
     *
     * @param padding 内边距
     * @return 当前对象，用于链式调用
     */
    public TextStyle setPadding(Integer padding) {
        this.padding = padding;
        return this;
    }
    
    /**
     * 获取文字阴影颜色。
     *
     * @return 文字阴影颜色
     */
    public String getTextShadowColor() {
        return textShadowColor;
    }
    
    /**
     * 设置文字阴影颜色。
     *
     * @param textShadowColor 文字阴影颜色
     * @return 当前对象，用于链式调用
     */
    public TextStyle setTextShadowColor(String textShadowColor) {
        this.textShadowColor = textShadowColor;
        return this;
    }
    
    /**
     * 获取文字阴影模糊大小。
     *
     * @return 文字阴影模糊大小
     */
    public Integer getTextShadowBlur() {
        return textShadowBlur;
    }
    
    /**
     * 设置文字阴影模糊大小。
     *
     * @param textShadowBlur 文字阴影模糊大小
     * @return 当前对象，用于链式调用
     */
    public TextStyle setTextShadowBlur(Integer textShadowBlur) {
        this.textShadowBlur = textShadowBlur;
        return this;
    }
    
    /**
     * 获取文字阴影横向偏移。
     *
     * @return 文字阴影横向偏移
     */
    public Integer getTextShadowOffsetX() {
        return textShadowOffsetX;
    }
    
    /**
     * 设置文字阴影横向偏移。
     *
     * @param textShadowOffsetX 文字阴影横向偏移
     * @return 当前对象，用于链式调用
     */
    public TextStyle setTextShadowOffsetX(Integer textShadowOffsetX) {
        this.textShadowOffsetX = textShadowOffsetX;
        return this;
    }
    
    /**
     * 获取文字阴影纵向偏移。
     *
     * @return 文字阴影纵向偏移
     */
    public Integer getTextShadowOffsetY() {
        return textShadowOffsetY;
    }
    
    /**
     * 设置文字阴影纵向偏移。
     *
     * @param textShadowOffsetY 文字阴影纵向偏移
     * @return 当前对象，用于链式调用
     */
    public TextStyle setTextShadowOffsetY(Integer textShadowOffsetY) {
        this.textShadowOffsetY = textShadowOffsetY;
        return this;
    }
    
    /**
     * 获取文本旋转角度。
     *
     * @return 文本旋转角度（单位：度）
     */
    public Integer getRotate() {
        return rotate;
    }
    
    /**
     * 设置文本旋转角度。
     *
     * @param rotate 文本旋转角度（单位：度）
     * @return 当前对象，用于链式调用
     */
    public TextStyle setRotate(Integer rotate) {
        this.rotate = rotate;
        return this;
    }
} 